#ifndef _IFRAME_H_
#define _IFRAME_H_

#include <io/ioperation.h>
#include <io/iiodevice.h>
#include <io/isocket.h>
#include <io/itimer.h>
#include <io/ifile.h>

#define IO_BASE					1000


typedef enum TAG_IO_PROTOCOL
{
	io_base = 0,
	io_operation = 1,
	io_tcp_socket = 100,
	io_tcplisten_socket = 101,
	io_udp_socket = 102,
	io_udplisten_socket = 103,
	io_timer = 1001,
	io_file = 1002
	
}IO_Protocol;

interface IAsynFrame : public IBase
{
	std_method(CreateIo)(IO_Protocol iop, IBase** pBase) PURE;
	std_method(PostIo)(IBase *pOperation) PURE;
};


// {AFC59E7B-C3B1-4909-A0AA-795C6FB56347}
_DEFINE_IID(IID_IAsynFrame, 
	0xafc59e7b, 0xc3b1, 0x4909, 0xa0, 0xaa, 0x79, 0x5c, 0x6f, 0xb5, 0x63, 0x47);
	
// {F170A724-AACA-4603-BB1C-0A8EAF1C3322}
_DEFINE_GUID(CLSID_IAsynFrame, 
    0xf170a724, 0xaaca, 0x4603, 0xbb, 0x1c, 0xa, 0x8e, 0xaf, 0x1c, 0x33, 0x22);

#endif
